export default function ({ $axios, redirect, store, app }) {
  // 请求拦截器
  $axios.onRequest(config => {
    // 在请求发送前可以做一些处理，例如添加通用的请求头
    console.log(`Making request to ${config.url}`)
    return config
  })

  // 响应拦截器
  $axios.onResponse(response => {
    // 在收到响应后可以做一些处理
    return response
  })

  // 错误拦截器
  $axios.onError(error => {
    const code = parseInt(error.response && error.response.status)
    
    // 处理常见错误
    if (code === 400) {
      console.error('Bad request')
    } else if (code === 401) {
      // 未授权，可能是token过期，重定向到登录页
      console.error('Unauthorized, redirecting to login')
      // 如果不是在登录页，则重定向到登录页
      if (app.router.currentRoute.path !== '/login') {
        redirect('/login')
      }
    } else if (code === 404) {
      console.error('Resource not found')
    } else if (code === 500) {
      console.error('Server error')
    }
    
    // 显示错误消息
    if (error.response && error.response.data && error.response.data.message) {
      // 如果有Vuex store的snackbar模块，可以显示错误消息
      if (store && store.dispatch) {
        store.dispatch('showSnackbar', {
          text: error.response.data.message,
          color: 'error'
        })
      }
    }
    
    return Promise.reject(error)
  })
}